package com.ray.util;

import com.alibaba.fastjson.JSONObject;
import com.ray.exception.ServiceException;

import java.util.LinkedList;
import java.util.Map;
import java.util.Queue;

public class ParamUtil {


    /**
     * @author: 李宇航
	 * @Description：根据传入的map和keys，
     * 判断map中所有的key的值是否为空，为空
     * 则抛出异常，若都不为空则返回所有参数
     * 值的队列。
	 * @param param
	 * @param keys
	 * @return Queue<String>
     * @throws Exception
	 */
	public static Queue<String> getAllNonNullParamsByKeyOrder(
            Map<String, String> param, String... keys){
		Queue<String> values = new LinkedList<>();
		for (String key : keys) {
			String value=param.get(key);
			if (value == null || "".equals(value.trim())) {
                throw new ServiceException(key + "参数不能为空");
            } else {
                values.add(value);
            }
        }
        return values;
    }

    /**
     * @param param
     * @param keys
     * @return Queue<String>
     * @throws Exception
     * @author: 李宇航
     * @Description：根据传入的json对象和keys， 判断json对象中所有的key的值是否为空，存在空
     * 则抛出异常，若都不为空则返回所有参数
     * 值的队列。
     */
    public static Queue<String> getAllNonNullParamsByKeyOrder(
            JSONObject param, String... keys) throws Exception {
        Queue<String> values = new LinkedList<>();
        for (String key : keys) {
            String value = param.getString(key);
            if (value == null || "".equals(value.trim())) {
                throw new Exception(key + "参数不能为空");
			} else {
				values.add(value);
			}
		}
		return values;
	}

}
